home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / lua.vim < prev    next >
Encoding:
Text File  |  2001-05-09  |  5.3 KB  |  139 lines

  1. " Vim syntax file
  2. " Language:    Lua
  3. " Author:    Carlos Augusto Teixeira Mendes <cmendes@inf.puc-rio.br>
  4. " Last Change:    09 october 1998
  5. "
  6. " Still has some syncing problems...
  7.  
  8.  
  9. " For version 5.x: Clear all syntax items
  10. " For version 6.x: Quit when a syntax file was already loaded
  11. if version < 600
  12.   syntax clear
  13. elseif exists("b:current_syntax")
  14.   finish
  15. endif
  16.  
  17. syn case match
  18.  
  19. "Comments
  20. syn keyword luaTodo             contained TODO FIXME XXX
  21. syn match   luaComment          "--.*$" contains=luaTodo
  22.  
  23. "catch errors caused by wrong parenthesis and wrong curly brackets or
  24. "keywords placed outside their respective blocks
  25.  
  26. syn region luaParen        transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaStatement
  27. syn match   luaError        ")"
  28. syn match   luaError        "}"
  29. syn match   luaError        "\<\(end\|else\|elseif\|then\|until\)\>"
  30.  
  31.  
  32. "Function declaration
  33. syn region  luaFunctionBlock    transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd
  34.  
  35. "if then else elseif end
  36. syn keyword luaCond        contained else
  37.  
  38. syn region  luaCondEnd        contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial
  39.  
  40. syn region  luaCondElseif    contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd
  41.  
  42. syn region  luaCondStart    transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaCondEnd skipwhite skipempty
  43.  
  44.  
  45.  
  46. " do end block
  47. syn region  luaBlock        transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd
  48.  
  49. "repeat until and while do blocks
  50. syn region  luaRepeatBlock    transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd
  51.  
  52. syn region  luaRepeatBlock    transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty
  53.  
  54. "other keywords
  55. syn keyword luaStatement    return local
  56. syn keyword luaOperator        and or not
  57. syn keyword luaConstant        nil
  58.  
  59. "Pre processor
  60. syn match   luaPreProc          "^\s*$\(debug\|nodebug\|if\|ifnot\|end\|else\|endinput\)\>"
  61.  
  62. "Strings
  63. syn match   luaSpecial        contained "\\[ntr]"
  64. syn region  luaString        start=+'+  end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial
  65. syn region  luaString        start=+"+  end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial
  66. syn region  luaString        start=+\[\[+ end=+\]\]+
  67.  
  68. "integer number
  69. syn match luaNumber        "\<[0-9]\+\>"
  70. "floating point number, with dot, optional exponent
  71. syn match luaFloat        "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>"
  72. "floating point number, starting with a dot, optional exponent
  73. syn match luaFloat        "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
  74. "floating point number, without dot, with exponent
  75. syn match luaFloat        "\<[0-9]\+e[-+]\=[0-9]\+\>"
  76.  
  77. "tables
  78. syn region  luaTableBlock       transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaStatement
  79.  
  80. "internal functions
  81. syn keyword luaInternalFunc  assert call collectgarbage dofile copytagmethods
  82. syn keyword luaInternalFunc  dostring error foreach foreachvar getglobal
  83. syn keyword luaInternalFunc  newtag next nextvar print rawgetglobal
  84. syn keyword luaInternalFunc  rawgettable rawsetglobal rawsettable seterrormethod
  85. syn keyword luaInternalFunc  setglobal settagmethod gettagmethod settag tonumber
  86. syn keyword luaInternalFunc  tostring tag type
  87.  
  88. "standard libraries
  89. syn keyword luaStdLibFunc    setlocale execute remove rename tmpname
  90. syn keyword luaStdLibFunc    getenv date clock exit debug print_stack
  91. syn keyword luaStdLibFunc    readfrom writeto appendto read write
  92. syn keyword luaStdLibFunc    abs sin cos tan asin
  93. syn keyword luaStdLibFunc    acos atan atan2 ceil floor
  94. syn keyword luaStdLibFunc    mod frexp ldexp sqrt min max log
  95. syn keyword luaStdLibFunc    log10 exp deg rad random
  96. syn keyword luaStdLibFunc    randomseed strlen strsub strlower strupper
  97. syn keyword luaStdLibFunc    strchar strrep ascii strbyte format
  98. syn keyword luaStdLibFunc    strfind gsub
  99.  
  100.  
  101. "syncing method
  102. syn sync minlines=100
  103.  
  104. " Define the default highlighting.
  105. " For version 5.7 and earlier: only when not done already
  106. " For version 5.8 and later: only when an item doesn't have highlighting yet
  107. if version >= 508 || !exists("did_lua_syntax_inits")
  108.   if version < 508
  109.     let did_lua_syntax_inits = 1
  110.     command -nargs=+ HiLink hi link <args>
  111.   else
  112.     command -nargs=+ HiLink hi def link <args>
  113.   endif
  114.  
  115.   HiLink luaStatement        Statement
  116.   HiLink luaRepeat        Repeat
  117.   HiLink luaString        String
  118.   HiLink luaNumber        Number
  119.   HiLink luaFloat        Float
  120.   HiLink luaOperator        Operator
  121.   HiLink luaConstant        Constant
  122.   HiLink luaCond            Conditional
  123.   HiLink luaFunction        Function
  124.   HiLink luaComment        Comment
  125.   HiLink luaTodo        Todo
  126.   HiLink luaTable        Structure
  127.   HiLink luaError        Error
  128.   HiLink luaSpecial        SpecialChar
  129.   HiLink luaPreProc        PreProc
  130.   HiLink luaInternalFunc    Identifier
  131.   HiLink luaStdLibFunc        Identifier
  132.  
  133.   delcommand HiLink
  134. endif
  135.  
  136. let b:current_syntax = "lua"
  137.  
  138. " vim: ts=8
  139.